﻿// Inner Fire 游戏引擎库
// 渲染项目类-画布类
//
// Copyright (c) 2025 by 尔西大帝. All rights reserved.
//
// 这个是按Unity的结构设计的。我在设计的过程中发现需要一个系统级的结构，
// 用来旋转屏幕大小这些。然后需要将参数传来传去，非常不好。
// 所以用一个统一的Canvas类管理很好。
//
// Author: 尔西大帝
// Email: 2670613871@qq.com
// Created: 2025-01-04

#pragma once

#include <dx/ui/ui_def.h>

namespace ifire::dx {
struct UICanvasDesc {
  UIWidget Widget;
};

class UICanvas {
public:
  UICanvas(const UICanvasDesc& desc);
  UICanvas(const UICanvas& rhs) = delete;
  UICanvas& operator=(const UICanvas& rhs) = delete;
  ~UICanvas() = default;

  void OnResize(const UIWidget& widget);

public:
  UIWidget mWidget;
};
} // namespace ifire